#if !defined(READ_OPTIONS_H)
#define READ_OPTIONS_H


#include <boost/program_options/options_description.hpp>
#include <boost/program_options/value_semantic.hpp>
#include "std_options.h"
#include <vector>
#include <string>


//________________________________________________________________________________________
// 
// 		read_options
//________________________________________________________________________________________
class prog_options : public t_std_options
{
private:
public:
	prog_options():
		t_std_options("Counts SNPs by its category name and by its enclosing interval.\n"
						"Multiple interval files can be specified, each with its own type.\n"
						"Only the first enclosing interval type will be chosen if there are multiple matches.\n "
						"SNPs outside of an interval will be assigned the default type.\n"
						"The number of --interval_type must correspond to the number of --interval_file.", 
						" --input_file SNP_FILE --output_file RESULT\n "
						"--interval_file FILE --interval_type NAME\n "
						"[--interval_file FILE --interval_type NAME [options]]\n "
						, "1.0 02/03/2011", true),
		zero_based_snps(false),
		zero_based_intervals(false),
		jobs(0){}

	std::string					output_file_name;
	std::string					input_file_name;
	std::string 				default_interval_type_name;
	std::string 				contig_sizes_file_name;
	std::vector<std::string>	interval_type_names;
	std::vector<std::string>	interval_file_names;
	bool 						zero_based_snps;
	bool 						zero_based_intervals;
	bool						intervals_only;
	unsigned 					jobs;
};

bool read_options(prog_options& opt, int argc, char *argv[]);
#endif
